ABC171 D - Replacing
https://atcoder.jp/contests/abc171/tasks/abc171_d
提出
code: python
n = int(input())
a = list(map(int, input().split()))
q = int(input())
bc = list(map(int, input().split())) for _ in range(q)
# q=10^5回数分ループしてはいけない
# 変換後の状態は持たないといけないか
count = 0 * pow(10, 5)
for i in a:
counti-1 += 1
for i in bc:
count[i1 - 1] += count[i0 - 1]
count[i0 - 1] = 0
ans = 0
for j in range(max(a+i)):
ans += (j+1) * countj
print(ans)
解答
code: python
n = int(input())
a = list(map(int, input().split()))
q = int(input())
bc = list(map(int, input().split())) for _ in range(q)
cnt = 0 * 100005
for i in a:
cnti += 1
ans = 0
for i in range(100005):
ans += i * cnti
for i in range(q):
ans -= bci0 * cnt[bci0]
# 後で += bci1 * cnt[bci1] するから重複しないように
ans -= bci1 * cnt[bci1]
cnt[bci1] += cnt[bci0]
cnt[bci0] = 0
ans += bci1 * cnt[bci1]
print(ans)
提出
code: python
import collections
n = int(input())
a = list(map(int, input().split()))
q = int(input())
bc = list(map(int, input().split())) for _ in range(q)
ans = sum(a)
collection = collections.Counter(a)
for i in bc:
b = i0
c = i1
tmpb_num = collectionb
ans -= b * tmpb_num
ans += c * tmpb_num
collectionb = 0
collectionc += tmpb_num
print(ans)